package day_240521;

public class Dog {
    String name;

    public Dog(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Dog's name: " + name;
    }
}

interface A {
    void m();
}

interface B {
    void m();
}

// 明确接口C中m()方法的实现
interface C extends A, B {
    // 将dog定义为常量
    Dog dog = new Dog("小黑");
    @Override
    default void m() {
        // 默认实现
        // 从Java 8开始，default 关键字允许在接口中提供方法的默认实现。
        // 这意味着，即使一个类没有覆盖接口中的某个方法，该类的对象仍然可以调用这个默认方法。
        // 这样做的好处是，可以在不破坏现有代码的情况下向接口添加新的方法。
    }
}

class D implements C {
    public void m() {
        // 不能重新赋值dog，因为它是final的
        System.out.println(C.dog);
    }
}